package com.oJudge.utils;

public class Logger {
    /**
     *打印日志信息（白色）
     */
    public static void log(String message) {
        System.out.println(ConsoleColors.WHITE + "【LOG】" + message + ConsoleColors.RESET);
    }

    /**
     *打印数据信息（蓝色）
     */
    public static void info(String message) {
        System.out.println(ConsoleColors.BLUE_BOLD + "【INFO】" + message + ConsoleColors.RESET);
    }

    /**
     *打印成功信息（绿色）
     */
    public static void success(String message) {
        System.out.println(ConsoleColors.GREEN_BOLD + "【SUCCESS】" + message + ConsoleColors.RESET);
    }

    /**
     *打印警告信息（黄色）
     */
    public static void warn(String message) {
        System.out.println(ConsoleColors.YELLOW_BOLD + "【WARN】" + message + ConsoleColors.RESET);
    }

    /**
     *  打印错误信息（红色）,换行
     */
    public static void error(String message) {
        System.out.println(ConsoleColors.RED_BOLD + "【ERROR】" + message + ConsoleColors.RESET);
    }
    /**
     *打印错误信息（红色），不换行，同时修改控制台的颜色不会重置
     */
    public static void err(String message) {
        System.out.print(ConsoleColors.RED_BOLD + "【ERROR】" + message);
    }

    /**
     *打印异常引发问题的堆栈信息
     */
    public static void error(String message,Exception exception) {
        String errorMessage = exception.getMessage();
        String rootException = ExceptionStackTrace.getRootException(exception.getStackTrace());
        Logger.error(message + rootException + "："+ errorMessage);
    }

    /**
     *打印异常引发问题的堆栈信息
     */
    public static void error(Exception exception) {
        String errorMessage = exception.getMessage();
        String rootException = ExceptionStackTrace.getRootException(exception.getStackTrace());
        Logger.error(rootException + "："+ errorMessage);
    }
}